package org.example.score.service.impl;

import com.baomidou.mybatisplus.core.conditions.query.QueryWrapper;
import com.baomidou.mybatisplus.extension.service.impl.ServiceImpl;
import org.example.score.domain.Dlzszyqk;
import org.example.score.service.DlzszyqkService;
import org.example.score.mapper.DlzszyqkMapper;
import org.example.util.result.Parameter;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;

import java.util.ArrayList;
import java.util.List;

/**
* @author abc
* @description 针对表【pd_dlzszyqk】的数据库操作Service实现
* @createDate 2025-03-10 10:58:19
*/
@Service
public class DlzszyqkServiceImpl extends ServiceImpl<DlzszyqkMapper, Dlzszyqk>
    implements DlzszyqkService {

    @Autowired
    private DlzszyqkMapper dlzszyqkMapper;

    @Override
    public List<Parameter> Search(Parameter parameter) {
        //在一个学校中，相同专业代码，可能有多个专业名称，如普通专业和中外合作专业
        //因此需要先根据学校名称，学校代码，专业代码和校内专业代码等数据查询出所有的专业名称
        String school = parameter.getSchool();
        String major = parameter.getMajor();
        QueryWrapper<Dlzszyqk> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("code", school)
                .eq("zymc", major);
        List<Dlzszyqk> tmp = dlzszyqkMapper.selectList(queryWrapper);
        List<Parameter> result = new ArrayList<>();
        for(Dlzszyqk t:tmp){
            Parameter p = new Parameter();
            p.setSchool(t.getCode());
            p.setNameInSchool(t.getXnzymc());
            p.setCode(t.getZydm());
            p.setCodeInSchool(t.getXnzydm());
            p.setMajor(t.getZymc());
            result.add(p);
        }
        return result;
    }

    @Override
    public String getSchoolName(Parameter p) {
        // 构建查询条件
        QueryWrapper<Dlzszyqk> queryWrapper = new QueryWrapper<>();
        queryWrapper.eq("code", p.getSchool()); // 根据学校代码查询
        queryWrapper.eq("xnzymc", p.getNameInSchool());

        // 执行查询
        List<Dlzszyqk> resultList = dlzszyqkMapper.selectList(queryWrapper);

        // 处理查询结果
        if (resultList.isEmpty()) {
            System.out.println("未找到符合条件的记录");
            return "";
        } else if (resultList.size() > 1) {
            System.out.println("找到多条符合条件的记录，默认返回第一条");
            return resultList.get(0).getName();
        } else {
            return resultList.get(0).getName();
        }
    }
    }




